home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Environments / Oberon⁄F™ 1.2 / Preinstalled version / Mac / Mod / DeviceMgr (.txt) < prev    next >
Encoding:
Oberon Document  |  1995-09-04  |  5.8 KB  |  192 lines  |  [oODC/obnF]

  1. Documents.StdDocumentDesc
  2. Documents.DocumentDesc
  3. Containers.ViewDesc
  4. Views.ViewDesc
  5. Stores.StoreDesc
  6. Documents.ModelDesc
  7. Containers.ModelDesc
  8. Models.ModelDesc
  9. Stores.ElemDesc
  10. TextViews.StdViewDesc
  11. TextViews.ViewDesc
  12. TextModels.StdModelDesc
  13. TextModels.ModelDesc
  14. TextModels.AttributesDesc
  15. Geneva
  16. Geneva
  17. Geneva
  18. MODULE MacDeviceMgr;
  19. IMPORT SYSTEM, MacTypes;
  20.     ParmBlkPtr* = POINTER TO ParamBlockRec;
  21.     ParamBlockRec* = RECORD (MacTypes.Data)
  22.         qLink*: LONGINT;
  23.         qType*: INTEGER;
  24.         ioTrap*: INTEGER;
  25.         ioCmdAddr*: MacTypes.Ptr;
  26.         ioCompletion*: MacTypes.ProcPtr;
  27.         ioResult*: MacTypes.OSErr;
  28.         ioNamePtr*: MacTypes.StringPtr;
  29.         ioVRefNum*: INTEGER;
  30.     END;
  31.     ioParamBlockRec* = RECORD (ParamBlockRec)
  32.         ioRefNum*: INTEGER;
  33.         ioVersNum*: MacTypes.SignedByte;
  34.         ioPermssn*: MacTypes.SignedByte;
  35.         ioMisc*: MacTypes.Ptr;
  36.         ioBuffer*: MacTypes.Ptr;
  37.         ioReqCount*: LONGINT;
  38.         ioActCount*: LONGINT;
  39.         ioPosMode*: LONGINT;
  40.         ioPosOffset*: LONGINT;
  41.     END;
  42.     cntrlParamBlockRec* = RECORD (ParamBlockRec)
  43.         ioCRefNum*: INTEGER;
  44.         csCode*: INTEGER;
  45.         csParam*: ARRAY 11 OF INTEGER;
  46.     END;
  47. (* Trapcodes *)
  48. PROCEDURE [1] open 0A0H, 000H;
  49. PROCEDURE [1] openAsync 0A4H, 000H;
  50. PROCEDURE [1] close 0A0H, 001H;
  51. PROCEDURE [1] closeAsync 0A4H, 001H;
  52. PROCEDURE [1] read 0A0H, 002H;
  53. PROCEDURE [1] readAsync 0A4H, 002H;
  54. PROCEDURE [1] write 0A0H, 003H;
  55. PROCEDURE [1] writeAsync 0A4H, 003H;
  56. PROCEDURE [1] control 0A0H, 004H;
  57. PROCEDURE [1] controlAsync 0A4H, 004H;
  58. PROCEDURE [1] status 0A0H, 005H;
  59. PROCEDURE [1] statusAsync 0A4H, 005H;
  60. PROCEDURE [1] killIO 0A0H, 006H;
  61. PROCEDURE [1] killIOAsync 0A4H, 006H;
  62. PROCEDURE [1] Debugger 0A9H, 0FFH;
  63. (* High-Level Device Manager Routines *)
  64. PROCEDURE OpenDriver*(name: MacTypes.Str255; VAR refNum: INTEGER): MacTypes.OSErr;
  65.     pb: ioParamBlockRec;
  66. BEGIN
  67.     pb.ioCompletion := NIL;
  68.     pb.ioNamePtr := SYSTEM.VAL(MacTypes.StringPtr, SYSTEM.ADR(name));
  69.     pb.ioPermssn := 0;
  70.     SYSTEM.PUTREG(8, SYSTEM.ADR(pb));
  71.     open;
  72.     refNum := pb.ioRefNum;
  73.     RETURN pb.ioResult;
  74. END OpenDriver;
  75. PROCEDURE CloseDriver*(refNum: INTEGER): MacTypes.OSErr;
  76.     pb: ioParamBlockRec;
  77. BEGIN
  78.     pb.ioCompletion := NIL;
  79.     pb.ioRefNum := refNum;
  80.     SYSTEM.PUTREG(8, SYSTEM.ADR(pb));
  81.     close;
  82.     RETURN pb.ioResult;
  83. END CloseDriver;
  84. PROCEDURE FSRead*(refNum: INTEGER; VAR count: LONGINT; buffPtr: MacTypes.Ptr): MacTypes.OSErr;
  85.     pb: ioParamBlockRec;
  86. BEGIN
  87.     pb.ioCompletion := NIL;
  88.     pb.ioVRefNum := 0; (* ??? *)
  89.     pb.ioRefNum := refNum;
  90.     pb.ioBuffer := buffPtr;
  91.     pb.ioReqCount := count;
  92.     pb.ioPosMode := 0;
  93.     pb.ioPosOffset := 0;
  94.     SYSTEM.PUTREG(8, SYSTEM.ADR(pb));
  95.     read;
  96.     count := pb.ioActCount;
  97.     RETURN pb.ioResult;
  98. END FSRead;
  99. PROCEDURE FSWrite*(refNum: INTEGER; VAR count: LONGINT; buffPtr: MacTypes.Ptr): MacTypes.OSErr;
  100.     pb: ioParamBlockRec;
  101. BEGIN
  102.     pb.ioCompletion := NIL;
  103.     pb.ioVRefNum := 0; (* ??? *)
  104.     pb.ioRefNum := refNum;
  105.     pb.ioBuffer := buffPtr;
  106.     pb.ioReqCount := count;
  107.     pb.ioPosMode := 0;
  108.     pb.ioPosOffset := 0;
  109.     SYSTEM.PUTREG(8, SYSTEM.ADR(pb));
  110.     write;
  111.     count := pb.ioActCount;
  112.     RETURN pb.ioResult;
  113. END FSWrite;
  114. PROCEDURE KillIO*(refNum: INTEGER): MacTypes.OSErr;
  115.     pb: ioParamBlockRec;
  116. BEGIN
  117.     pb.ioCompletion := NIL;
  118.     pb.ioRefNum := refNum;
  119.     SYSTEM.PUTREG(8, SYSTEM.ADR(pb));
  120.     killIO;
  121.     RETURN pb.ioResult;
  122. END KillIO;
  123. (* Low-Level Device Manager Routines *)
  124. PROCEDURE PBOpen*(paramBlock: ParmBlkPtr; async: BOOLEAN): MacTypes.OSErr;
  125. VAR res: MacTypes.OSErr;
  126. BEGIN
  127.     SYSTEM.PUTREG(8, paramBlock);
  128.     IF async THEN openAsync ELSE open END;
  129.     SYSTEM.GETREG(0, res);
  130.     RETURN res;
  131. END PBOpen;
  132. PROCEDURE PBClose*(paramBlock: ParmBlkPtr; async: BOOLEAN): MacTypes.OSErr;
  133. VAR res: MacTypes.OSErr;
  134. BEGIN
  135.     SYSTEM.PUTREG(8, paramBlock);
  136.     IF async THEN closeAsync ELSE close END;
  137.     SYSTEM.GETREG(0, res);
  138.     RETURN res;
  139. END PBClose;
  140. PROCEDURE PBRead*(paramBlock: ParmBlkPtr; async: BOOLEAN): MacTypes.OSErr;
  141. VAR res: MacTypes.OSErr;
  142. BEGIN
  143.     SYSTEM.PUTREG(8, paramBlock);
  144.     IF async THEN readAsync ELSE read END;
  145.     SYSTEM.GETREG(0, res);
  146.     RETURN res;
  147. END PBRead;
  148. PROCEDURE PBWrite*(paramBlock: ParmBlkPtr; async: BOOLEAN): MacTypes.OSErr;
  149. VAR res: MacTypes.OSErr;
  150. BEGIN
  151.     SYSTEM.PUTREG(8, paramBlock);
  152.     IF async THEN writeAsync ELSE write END;
  153.     SYSTEM.GETREG(0, res);
  154.     RETURN res;
  155. END PBWrite;
  156. PROCEDURE PBControl*(paramBlock: ParmBlkPtr; async: BOOLEAN): MacTypes.OSErr;
  157. VAR res: MacTypes.OSErr;
  158. BEGIN
  159.     SYSTEM.PUTREG(8, paramBlock);
  160.     IF async THEN controlAsync ELSE control END;
  161.     SYSTEM.GETREG(0, res);
  162.     RETURN res;
  163. END PBControl;
  164. PROCEDURE PBStatus*(paramBlock: ParmBlkPtr; async: BOOLEAN): MacTypes.OSErr;
  165. VAR res: MacTypes.OSErr;
  166. BEGIN
  167.     SYSTEM.PUTREG(8, paramBlock);
  168.     IF async THEN statusAsync ELSE status END;
  169.     SYSTEM.GETREG(0, res);
  170.     RETURN res;
  171. END PBStatus;
  172. PROCEDURE PBKillIO*(paramBlock: ParmBlkPtr; async: BOOLEAN): MacTypes.OSErr;
  173. VAR res: MacTypes.OSErr;
  174. BEGIN
  175.     SYSTEM.PUTREG(8, paramBlock);
  176.     IF async THEN killIOAsync ELSE killIO END;
  177.     SYSTEM.GETREG(0, res);
  178.     RETURN res;
  179. END PBKillIO;
  180. END MacDeviceMgr.
  181. TextControllers.StdCtrlDesc
  182. TextControllers.ControllerDesc
  183. Containers.ControllerDesc
  184. Controllers.ControllerDesc
  185. TextRulers.StdRulerDesc
  186. TextRulers.RulerDesc
  187. TextRulers.StdStyleDesc
  188. TextRulers.StyleDesc
  189. TextRulers.AttributesDesc
  190. Geneva
  191. Documents.ControllerDesc
  192.